package vista;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import controlador.TelefoniaMovil;



public class AltaServicio extends JFrame {
	
	private JLabel nombre;
	private JLabel unidad;
	private JLabel precio;
	private JLabel tipo;
	private JTextField nombreTxt;
	private JTextField unidadTxt;
	private JTextField precioTxt;
	private JComboBox comboTipo;
	
	private JButton guardarButton;
	private JButton cancelarButton;
	
	private int tamanoLabelX = 60;
	private int tamanoLabelY = 28;
	private int tamanoTextFieldX = 250;
	private int tamanoTextFieldY = 28;
	
	
	private TelefoniaMovil tm;

	
	
	public static void main(String[] args) {
		AltaServicio as= new AltaServicio();
		as.setVisible(true);
	}
	
	public AltaServicio(TelefoniaMovil tm) {
		
		this.tm = tm;
		initGUI();
		
	}
	
	public AltaServicio() {
		
		initGUI();
		
	}
	
	public void validarNumero(java.awt.event.KeyEvent evt){
    	int caracter=(int)evt.getKeyChar();
       	
    	if(((caracter < '0') || (caracter > '9')) && (caracter != java.awt.event.KeyEvent.VK_BACK_SPACE) && caracter != '.')
    	{
	    	evt.consume();
	    	JOptionPane.showMessageDialog(null,"No puede ingresar letras!!!","Ventana Error Datos",JOptionPane.ERROR_MESSAGE);
    	}
    	
	}
	
	private boolean validarDatosVacio(){
		if (nombreTxt.getText().length() == 0){
			JOptionPane.showMessageDialog(null, "El campo Nombre no puede estar vacio", "Alta Servicio", JOptionPane.ERROR_MESSAGE);
			return false;
		}else{
			if (unidadTxt.getText().length() == 0){
				JOptionPane.showMessageDialog(null, "El campo Unidad no puede estar vacio", "Alta Servicio", JOptionPane.ERROR_MESSAGE);
				return false;
			}else{
				if (precioTxt.getText().length() == 0){
				JOptionPane.showMessageDialog(null, "El campo Precio no puede estar vacio", "Alta Servicio", JOptionPane.ERROR_MESSAGE);
				return false;
				}
			}
		}
		return true;
	}
	
	private void initGUI() {
		try{
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			
			nombre =  new JLabel();
			nombre.setText("Nombre:");
			nombre.setBounds(20, 5, tamanoLabelX, tamanoLabelY);
			getContentPane().add(nombre);
			
			unidad =  new JLabel();
			unidad.setText("Unidad:");
			unidad.setBounds(20, 38, tamanoLabelX, tamanoLabelY);
			getContentPane().add(unidad);
			
			precio =  new JLabel();
			precio.setText("Precio:");
			precio.setBounds(20, 71, tamanoLabelX, tamanoLabelY);//38+28+5
			getContentPane().add(precio);
			
			nombreTxt = new JTextField();
			nombreTxt.setBounds( 85 , 5, tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(nombreTxt);
			
			unidadTxt =  new JTextField();
			unidadTxt.setBounds(85, 38 , tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(unidadTxt);
			
			precioTxt = new JTextField();
			precioTxt.setBounds( 85 , 71, tamanoTextFieldX, tamanoTextFieldY);
			getContentPane().add(precioTxt);
			precioTxt.addKeyListener(new java.awt.event.KeyAdapter() {
	            public void keyTyped(java.awt.event.KeyEvent evt) {
	            	validarNumero(evt);
	            }
	        });
			
			
			tipo =  new JLabel();
			tipo.setText("Tipo:");
			tipo.setBounds(20, 110, tamanoLabelX, tamanoLabelY);
			getContentPane().add(tipo);
			
			comboTipo =  new JComboBox();
			comboTipo.setBounds(85, 110, 100, 28);
			comboTipo.addItem("Voz");
			comboTipo.addItem("Datos");
			comboTipo.addItem("Sms");
			getContentPane().add(comboTipo);
			

			guardarButton = new JButton();
			getContentPane().add(guardarButton);
			guardarButton.setText("Guardar");
			guardarButton.setBounds(100, 175, 90, 30);
			guardarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					boolean validar = validarDatosVacio();
					
					if (validar){
						int Idtipo = comboTipo.getSelectedIndex() + 1;
						boolean cs = (tm.crearServicio(nombreTxt.getText(),unidadTxt.getText(), Float.parseFloat(precioTxt.getText()),Idtipo));
						if (cs == true) {
							JOptionPane.showMessageDialog(null, "Se creo satisfactoriamente el Servicio", "Alta Servicio", JOptionPane.INFORMATION_MESSAGE);
							nombreTxt.setText("");
							unidadTxt.setText("");
							precioTxt.setText("");
							
						} else
							JOptionPane.showMessageDialog(null, "Se produjo un error al crear el Servicio", "Alta servicio", JOptionPane.ERROR_MESSAGE);

					}
					

				}
			});
			
			cancelarButton = new JButton();
			getContentPane().add(cancelarButton);
			cancelarButton.setText("Cancelar");
			cancelarButton.setBounds(245, 175, 90, 30);
			cancelarButton.addActionListener(new ActionListener()
			{
				public void actionPerformed(ActionEvent evt) 
				{
					dispose();
				}
			});
			
			setTitle("Alta Servicio");
			pack();
			setSize(360, 250);
			setResizable(false);
		}catch(Exception e) {
			e.printStackTrace();
			
		}

	}
	
	
	
}